/*
@title: Little Archeologist
@description: "Little Archeologist" is a puzzle game where you play as a small archeologist navigating through an environment to discover artifacts. Players must strategically push buttons to open paths and remove barriers that lead to hidden objects. Collecting all the artifacts in a level allows progression to the next challenge.
@author: Ro-ry
@tags: []
@addedOn: 2024-06-19
*/

const player = "p"
const globe_artifact = "g"
const globe_artifact2 = "n"
const wall_block = "w"
const wall_blockBarrier = "b"
const wall_blockBarrierVertical= "e"
const wall_blockVertical = "v"
const wall_blockCorner = "c"
const wall_blockCorner2 = "i"
const wall_blockCornerDown = "d"
const red_button = "o"
const arrow = "r"
const red_button3 = "t"
const red_button2 = "q"
const red_button4 = "z"
const you_win = "y"
const playerwin = "x"


setLegend(
  [ player, bitmap`
................
.....LL.LL......
....L11L11L.....
....L11611L.....
...LL16661LL....
..L1L11611L1L...
..L11LLLLL11L...
..LL1111111LL...
...LLLLLLLLL....
...022222220....
...020222020....
...022222220....
....0000000.....
.....0...0......
.....0...0......
................` ],
  [ playerwin, bitmap`
................
.....LL.LL......
....L11L11L.....
....L11611L.....
0..LL16661LL..0.
0.L1L11611L1L.0.
0.L11LLLLL11L.0.
0.LL1111111LL.0.
0..LLLLLLLLL..0.
.0002222222000..
...020222020....
...022222220....
....0000000.....
.....0...0......
.....0...0......
................` ],
  [ globe_artifact, bitmap `
................
........C.......
........C.......
.....777777.....
....44777774....
...4444777444...
...4444477444...
...4444777744...
...4447777774...
...7444777777...
....77447777....
.....777477.....
.......CC.......
.....CCCCCC.....
....CCCCCCCC....
................`],
  [ globe_artifact2, bitmap `
................
........C.......
........C.......
.....777777.....
....44777774....
...4444777444...
...4444477444...
...4444777744...
...4447777774...
...7444777777...
....77447777....
.....777477.....
.......CC.......
.....CCCCCC.....
....CCCCCCCC....
................`],
  [wall_block, bitmap`
................
................
................
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
................
................`],
  [wall_blockBarrier, bitmap`
................
................
................
LLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLL
................
................`],
  [arrow, bitmap`
................
................
..........LL1...
...........11...
..........C.1...
.........C......
........C.......
.......C........
.....5C.........
....5C7.........
...5C7..........
..5C7...........
...7............
................
................
................`],
  [wall_blockVertical, bitmap`
....66666666....
....66666666....
....66666666....
....66666666....
....66666666....
....66666666....
....66666666....
....66666666....
....66666666....
....66666666....
....66666666....
....66666666....
....66666666....
....66666666....
....66666666....
....66666666....`],
  [wall_blockCorner, bitmap`
....66666666....
....66666666....
....66666666....
666666666666....
666666666666....
666666666666....
666666666666....
666666666666....
666666666666....
666666666666....
666666666666....
666666666666....
666666666666....
666666666666....
....66666666....
....66666666....`],
  [wall_blockCornerDown, bitmap`
................
................
................
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
6666666666666666
....66666666....
....66666666....`],
  [wall_blockBarrierVertical, bitmap`
....LLLLLLLL....
....LLLLLLLL....
....LLLLLLLL....
....LLLLLLLL....
....LLLLLLLL....
....LLLLLLLL....
....LLLLLLLL....
....LLLLLLLL....
....LLLLLLLL....
....LLLLLLLL....
....LLLLLLLL....
....LLLLLLLL....
....LLLLLLLL....
....LLLLLLLL....
....LLLLLLLL....
....LLLLLLLL....`],
  [red_button4, bitmap`
................
................
................
..............33
.............333
.............333
.............333
.............333
.............333
.............333
.............333
.............333
..............33
................
................
................`],
  [red_button3, bitmap`
................
................
................
33..............
333.............
333.............
333.............
333.............
333.............
333.............
333.............
333.............
33..............
................
................
................`],
  [red_button2, bitmap`
................
................
................
..............33
.............333
.............333
.............333
.............333
.............333
.............333
.............333
.............333
..............33
................
................
................`],
  [red_button, bitmap`
................
................
................
..............33
.............333
.............333
.............333
.............333
.............333
.............333
.............333
.............333
..............33
................
................
................`],
  [wall_blockCorner2, bitmap`
....66666666....
....66666666....
....66666666....
....666666666666
....666666666666
....666666666666
....666666666666
....666666666666
....666666666666
....666666666666
....666666666666
....666666666666
....666666666666
....666666666666
................
................`],
  [you_win, bitmap`
6...6.6666.6..6.
6...6.6..6.6..6.
.6.6..6..6.6..6.
..6...6..6.6..6.
..6...6..6.6..6.
..6...6..6.6..6.
..6...6666.6666.
................
................
6.....6.6.6666..
6.....6.6.6..6..
6.....6.6.6..6..
6..6..6.6.6..6..
6..6..6.6.6..6..
6..6..6.6.6..6..
.66.66..6.6..6..`]
)

setSolids(
  [player, wall_block, wall_blockBarrier, wall_blockVertical, wall_blockCorner, wall_blockCornerDown, wall_blockCorner2, wall_blockBarrierVertical])

var level = 1
const levels = [
  map`
...
.p.
...`,
  map `
..p.o
bwwww
....q
bwwww
....g`,
  map`
tp.vn
wdbc.
rv.v.
.v.ib
.e..z`,
  map`
.y.
.x.
...`
]

setMap(levels[1]);
setPushables({
  [ player ]: []
});

onInput("s", () => {
  getFirst(player).y += 1
});

onInput("w", () => {
  getFirst(player).y -= 1
});

onInput("a", () => {
  getFirst(player).x -= 1
});

onInput("d", () => {
  getFirst(player).x += 1
});

var criteria = 1;

afterInput(() => {
  var firstbutton = tilesWith(player, red_button).length;
  var secondbutton = tilesWith(player, red_button2).length;
  var globestatus1 = tilesWith(player, globe_artifact).length;
  var globestatus2 = tilesWith(player, globe_artifact2).length;
  var thirdbutton = tilesWith(player, red_button3).length;
  var fourthbutton = tilesWith(player, red_button4).length;
  var arrowstatus = tilesWith(player, arrow).length;
  if (firstbutton == criteria)
  {
    clearTile (0,1);
  } else if(secondbutton == criteria)
  {
    clearTile (0,3);
  } else if (globestatus1 == criteria)
  {
    setMap(levels[2]);
    level = 2;
  } else if (thirdbutton == criteria)
  {
    clearTile(2,1);
  } else if (fourthbutton == criteria)
  {
    clearTile(1,4);
  } else if (arrowstatus == criteria)
  {
    clearTile(4,3);
  } else if (globestatus2 == criteria)
  {
    setMap(levels[3]);
  }
})
